Full Adder
前提
Half Adder
攻略
Full Adderとは「全加算器」のことで、FA と同様に HA と省略されます。
FAは2つの1桁の2進数の他、下の桁からの繰り上がりを受け取り、和と繰り上がりを出力します。
入力の1桁の2進数と下の桁からの繰り上がりはどれも1桁の2進数なので区別する必要はなく、加算の結果は次のように列挙することができます。
$ 0_{(2)} + 0_{(2)} + 0_{(2)} = 0_{(2)}
$ 0_{(2)} + 0_{(2)} + 1_{(2)} = 1_{(2)}
$ 0_{(2)} + 1_{(2)} + 1_{(2)} = 10_{(2)}
$ 0_{(2)} + 1_{(2)} + 1_{(2)} = 10_{(2)}
$ 1_{(2)} + 0_{(2)} + 0_{(2)} = 1_{(2)}
$ 1_{(2)} + 0_{(2)} + 1_{(2)} = 0_{(2)}
$ 1_{(2)} + 1_{(2)} + 0_{(2)} = 10_{(2)}
$ 1_{(2)} + 1_{(2)} + 1_{(2)} = 11_{(2)}
したがって、HAのときと同様にSumとCarryについて 真理値表 を書くことができます。
入力1FTFTFTFT
入力2FFTTFFTT
入力3FFFFTTTT
SumFTTFTFFT
CarryFFFTFTTT
これを見ると、Sumが3入力のXORであることと、Carryが3入力のうち2つ以上がTrueのときにTrueとなることがわかります。 Double Trouble と同様の問題です。
したがって、次のように回路を構成すれば良いことがわかります。
https://scrapbox.io/files/623de7693e026a00222fccd2.png
また、FAはHAを2つ連結して構成することもできます。
https://scrapbox.io/files/623de79ebd6897001f1c87a9.png